[INFO] cloning repository https://github.com/DSTGU/PEA
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DSTGU/PEA" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDSTGU%2FPEA", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDSTGU%2FPEA'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dfc52417fd64aed5202d1168b6d8c625ba965861
[INFO] checking DSTGU/PEA against try#7dabc88a3b6768751847baeb49983f31ac5f20e2 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDSTGU%2FPEA" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/DSTGU/PEA
[INFO] finished tweaking git repo https://github.com/DSTGU/PEA
[INFO] tweaked toml for git repo https://github.com/DSTGU/PEA written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DSTGU/PEA on toolchain 7dabc88a3b6768751847baeb49983f31ac5f20e2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DSTGU/PEA already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded syn v2.0.38
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c2a8398b72b0c13e19faa1906a6d646de81eb2621868997c863037a8d07d8c3d
[INFO] running `Command { std: "docker" "start" "-a" "c2a8398b72b0c13e19faa1906a6d646de81eb2621868997c863037a8d07d8c3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c2a8398b72b0c13e19faa1906a6d646de81eb2621868997c863037a8d07d8c3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2a8398b72b0c13e19faa1906a6d646de81eb2621868997c863037a8d07d8c3d", kill_on_drop: false }`
[INFO] [stdout] c2a8398b72b0c13e19faa1906a6d646de81eb2621868997c863037a8d07d8c3d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 196be40230e7f1d68abb51ab7115361682ba74294a868e069e3780bfd0511a4e
[INFO] running `Command { std: "docker" "start" "-a" "196be40230e7f1d68abb51ab7115361682ba74294a868e069e3780bfd0511a4e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling serde v1.0.188
[INFO] [stderr]    Compiling priority-queue v1.3.2
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking itertools v0.11.0
[INFO] [stderr]     Checking csv-core v0.1.11
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking csv v1.3.0
[INFO] [stderr]     Checking PEA v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/parser.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub(crate) fn generate_graph(n: i32, max: i32) -> (Vec<Vec<i32>>)
[INFO] [stdout]    |                                                   ^             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 - pub(crate) fn generate_graph(n: i32, max: i32) -> (Vec<Vec<i32>>)
[INFO] [stdout] 57 + pub(crate) fn generate_graph(n: i32, max: i32) -> Vec<Vec<i32>> 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::FoldWhile::Continue`
[INFO] [stdout]  --> src/heldkarp.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::FoldWhile::Continue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::min`
[INFO] [stdout]  --> src/heldkarp.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random`
[INFO] [stdout]  --> src/tabu.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{random, thread_rng};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/genetic.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/genetic.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `priority_queue::PriorityQueue`
[INFO] [stdout]  --> src/genetic.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use priority_queue::PriorityQueue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random`
[INFO] [stdout]  --> src/genetic.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::{random, Rng, thread_rng};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tabu::cadlen`
[INFO] [stdout]  --> src/genetic.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::tabu::cadlen;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stdout]  --> src/annealing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::rngs::ThreadRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env` and `thread`
[INFO] [stdout]  --> src/main.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{env, fs, thread};
[INFO] [stdout]   |           ^^^      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::MAX`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::char::MAX;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::f64::consts;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OpenOptions`
[INFO] [stdout]   --> src/main.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs::{File, OpenOptions};
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::stdin`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::stdin;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, and `mpsc`
[INFO] [stdout]   --> src/main.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::{Arc, mpsc, Mutex};
[INFO] [stdout]    |                 ^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::mpsc::Sender;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rand::rngs::ThreadRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/parser.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub(crate) fn generate_graph(n: i32, max: i32) -> (Vec<Vec<i32>>)
[INFO] [stdout]    |                                                   ^             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 - pub(crate) fn generate_graph(n: i32, max: i32) -> (Vec<Vec<i32>>)
[INFO] [stdout] 57 + pub(crate) fn generate_graph(n: i32, max: i32) -> Vec<Vec<i32>> 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::FoldWhile::Continue`
[INFO] [stdout]  --> src/heldkarp.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::FoldWhile::Continue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::min`
[INFO] [stdout]  --> src/heldkarp.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random`
[INFO] [stdout]  --> src/tabu.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{random, thread_rng};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/genetic.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/genetic.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `priority_queue::PriorityQueue`
[INFO] [stdout]  --> src/genetic.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use priority_queue::PriorityQueue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random`
[INFO] [stdout]  --> src/genetic.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::{random, Rng, thread_rng};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tabu::cadlen`
[INFO] [stdout]  --> src/genetic.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::tabu::cadlen;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stdout]  --> src/annealing.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::rngs::ThreadRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env` and `thread`
[INFO] [stdout]  --> src/main.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{env, fs, thread};
[INFO] [stdout]   |           ^^^      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::MAX`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::char::MAX;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::f64::consts;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OpenOptions`
[INFO] [stdout]   --> src/main.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs::{File, OpenOptions};
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::stdin`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::stdin;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Mutex`, and `mpsc`
[INFO] [stdout]   --> src/main.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::{Arc, mpsc, Mutex};
[INFO] [stdout]    |                 ^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::mpsc::Sender;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use itertools::Itertools;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rand::rngs::ThreadRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bruteforce.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut results = Vec::with_capacity(num_threads);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bruteforce.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let mut current_path: Vec<usize> = (1..size).collect();
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bruteforce.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut current_path: Vec<usize> = (1..size).collect();
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tabu.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let mut tmpsolution = solutions.peek().expect("Should not be empty");
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/tabu.rs:80:50
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 if !tabulist.iter().any(|&(x, y, z)| x == i as i32 && y == j as i32) {
[INFO] [stdout]    |                                                  ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lambda`
[INFO] [stdout]   --> src/annealing.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn nextTLundy(temperature: f32, lambda: f32) -> f32 {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_lambda`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]  --> src/bruteforce.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn calculate_cost(graph: &Vec<Vec<i32>>, path: &Vec<&usize>) -> i32
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost_slice` is never used
[INFO] [stdout]   --> src/bruteforce.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn calculate_cost_slice(graph: &[&[i32]], path: &Vec<&usize>) -> i32
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost_cutoff` is never used
[INFO] [stdout]   --> src/bruteforce.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn calculate_cost_cutoff(graph: &Vec<Vec<i32>>, path: &Vec<&usize>, cutoff: i32) -> i32
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost_mt` is never used
[INFO] [stdout]   --> src/bruteforce.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn calculate_cost_mt(graph: &Vec<Vec<i32>>, path: &Vec<&usize>, nr: usize) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force_thread` is never used
[INFO] [stdout]   --> src/bruteforce.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn brute_force_thread(graph: Vec<Vec<i32>>, nr: usize) -> (i32, Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force_mt` is never used
[INFO] [stdout]   --> src/bruteforce.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn brute_force_mt(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force` is never used
[INFO] [stdout]    --> src/bruteforce.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn brute_force(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>){
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force_cutoff` is never used
[INFO] [stdout]    --> src/bruteforce.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn brute_force_cutoff(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]  --> src/tabu.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn calculate_cost(graph: &Vec<Vec<i32>>, path: &Vec<usize>) -> i32
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randompath` is never used
[INFO] [stdout]   --> src/tabu.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn randompath(graph: &Vec<Vec<i32>>, rng: &mut ThreadRng) -> (i32, Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `choosefirst` is never used
[INFO] [stdout]   --> src/tabu.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn choosefirst(graph: &Vec<Vec<i32>>, sample: usize) -> (i32, Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap` is never used
[INFO] [stdout]   --> src/tabu.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn swap(graph: &Vec<Vec<i32>>, path: &Vec<usize>,j:usize ,k:usize) -> (i32, Vec<usize>){
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invert` is never used
[INFO] [stdout]   --> src/tabu.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn invert(graph: &Vec<Vec<i32>>, path: &Vec<usize>,j:usize ,k:usize) -> (i32, Vec<usize>){
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cadlen` is never used
[INFO] [stdout]   --> src/tabu.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn cadlen() -> usize{
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tabusearch_v2` is never used
[INFO] [stdout]   --> src/tabu.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn tabusearch_v2(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>){
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invert` is never used
[INFO] [stdout]  --> src/genetic.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn invert(graph: &Vec<Vec<i32>>, path: &Vec<usize>,j:usize ,k:usize) -> (i32, Vec<usize>){
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert` is never used
[INFO] [stdout]   --> src/genetic.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn insert(path: Vec<usize>, j:usize, k:usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ox` is never used
[INFO] [stdout]   --> src/genetic.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn ox(path1: &Vec<usize>, path2: &Vec<usize>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pmx` is never used
[INFO] [stdout]   --> src/genetic.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn pmx(path1: &Vec<usize>, path2: &Vec<usize>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randompath` is never used
[INFO] [stdout]    --> src/genetic.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn randompath(graph: &Vec<Vec<i32>>, rng: &mut ThreadRng) -> (i32, Vec<usize>) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]    --> src/genetic.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn calculate_cost(graph: &Vec<Vec<i32>>, path: &Vec<usize>) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutate` is never used
[INFO] [stdout]    --> src/genetic.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn mutate(path: Vec<usize>, percentage: usize, rng: &mut ThreadRng) -> Vec<usize>{
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_weighted` is never used
[INFO] [stdout]    --> src/genetic.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn generate_random_weighted(max: usize, rng: &mut ThreadRng) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_subpopulation` is never used
[INFO] [stdout]    --> src/genetic.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn create_subpopulation(graph: &Vec<Vec<i32>>, population: Vec<(i32, Vec<usize>)>, maxpopulation: usize, crossover_probability : us...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `genetic` is never used
[INFO] [stdout]    --> src/genetic.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn genetic(graph: &Vec<Vec<i32>>, maxpopulation: usize) -> (i32, Vec<usize>)
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |     println!("{}", filepath.clone());
[INFO] [stdout]    |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:82:16
[INFO] [stdout]    |
[INFO] [stdout] 82 |         if term.clone().split(" ").count() <= 1 {continue;}
[INFO] [stdout]    |                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nextTLundy` should have a snake case name
[INFO] [stdout]   --> src/annealing.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn nextTLundy(temperature: f32, lambda: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `next_tlundy`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bruteforce.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut results = Vec::with_capacity(num_threads);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bruteforce.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let mut current_path: Vec<usize> = (1..size).collect();
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bruteforce.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut current_path: Vec<usize> = (1..size).collect();
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tabu.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let mut tmpsolution = solutions.peek().expect("Should not be empty");
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/tabu.rs:80:50
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 if !tabulist.iter().any(|&(x, y, z)| x == i as i32 && y == j as i32) {
[INFO] [stdout]    |                                                  ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lambda`
[INFO] [stdout]   --> src/annealing.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn nextTLundy(temperature: f32, lambda: f32) -> f32 {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_lambda`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]  --> src/bruteforce.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn calculate_cost(graph: &Vec<Vec<i32>>, path: &Vec<&usize>) -> i32
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost_slice` is never used
[INFO] [stdout]   --> src/bruteforce.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn calculate_cost_slice(graph: &[&[i32]], path: &Vec<&usize>) -> i32
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost_cutoff` is never used
[INFO] [stdout]   --> src/bruteforce.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn calculate_cost_cutoff(graph: &Vec<Vec<i32>>, path: &Vec<&usize>, cutoff: i32) -> i32
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost_mt` is never used
[INFO] [stdout]   --> src/bruteforce.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn calculate_cost_mt(graph: &Vec<Vec<i32>>, path: &Vec<&usize>, nr: usize) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force_thread` is never used
[INFO] [stdout]   --> src/bruteforce.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn brute_force_thread(graph: Vec<Vec<i32>>, nr: usize) -> (i32, Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force_mt` is never used
[INFO] [stdout]   --> src/bruteforce.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn brute_force_mt(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force` is never used
[INFO] [stdout]    --> src/bruteforce.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn brute_force(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>){
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force_cutoff` is never used
[INFO] [stdout]    --> src/bruteforce.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn brute_force_cutoff(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]  --> src/tabu.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn calculate_cost(graph: &Vec<Vec<i32>>, path: &Vec<usize>) -> i32
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randompath` is never used
[INFO] [stdout]   --> src/tabu.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn randompath(graph: &Vec<Vec<i32>>, rng: &mut ThreadRng) -> (i32, Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `choosefirst` is never used
[INFO] [stdout]   --> src/tabu.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn choosefirst(graph: &Vec<Vec<i32>>, sample: usize) -> (i32, Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap` is never used
[INFO] [stdout]   --> src/tabu.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn swap(graph: &Vec<Vec<i32>>, path: &Vec<usize>,j:usize ,k:usize) -> (i32, Vec<usize>){
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invert` is never used
[INFO] [stdout]   --> src/tabu.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn invert(graph: &Vec<Vec<i32>>, path: &Vec<usize>,j:usize ,k:usize) -> (i32, Vec<usize>){
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cadlen` is never used
[INFO] [stdout]   --> src/tabu.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn cadlen() -> usize{
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tabusearch_v2` is never used
[INFO] [stdout]   --> src/tabu.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn tabusearch_v2(graph: &Vec<Vec<i32>>) -> (i32, Vec<usize>){
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invert` is never used
[INFO] [stdout]  --> src/genetic.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn invert(graph: &Vec<Vec<i32>>, path: &Vec<usize>,j:usize ,k:usize) -> (i32, Vec<usize>){
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert` is never used
[INFO] [stdout]   --> src/genetic.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn insert(path: Vec<usize>, j:usize, k:usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ox` is never used
[INFO] [stdout]   --> src/genetic.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn ox(path1: &Vec<usize>, path2: &Vec<usize>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pmx` is never used
[INFO] [stdout]   --> src/genetic.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn pmx(path1: &Vec<usize>, path2: &Vec<usize>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randompath` is never used
[INFO] [stdout]    --> src/genetic.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn randompath(graph: &Vec<Vec<i32>>, rng: &mut ThreadRng) -> (i32, Vec<usize>) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]    --> src/genetic.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn calculate_cost(graph: &Vec<Vec<i32>>, path: &Vec<usize>) -> i32
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutate` is never used
[INFO] [stdout]    --> src/genetic.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn mutate(path: Vec<usize>, percentage: usize, rng: &mut ThreadRng) -> Vec<usize>{
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_weighted` is never used
[INFO] [stdout]    --> src/genetic.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn generate_random_weighted(max: usize, rng: &mut ThreadRng) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_subpopulation` is never used
[INFO] [stdout]    --> src/genetic.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn create_subpopulation(graph: &Vec<Vec<i32>>, population: Vec<(i32, Vec<usize>)>, maxpopulation: usize, crossover_probability : us...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `genetic` is never used
[INFO] [stdout]    --> src/genetic.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn genetic(graph: &Vec<Vec<i32>>, maxpopulation: usize) -> (i32, Vec<usize>)
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |     println!("{}", filepath.clone());
[INFO] [stdout]    |                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:82:16
[INFO] [stdout]    |
[INFO] [stdout] 82 |         if term.clone().split(" ").count() <= 1 {continue;}
[INFO] [stdout]    |                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nextTLundy` should have a snake case name
[INFO] [stdout]   --> src/annealing.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn nextTLundy(temperature: f32, lambda: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^ help: convert the identifier to snake case: `next_tlundy`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.33s
[INFO] running `Command { std: "docker" "inspect" "196be40230e7f1d68abb51ab7115361682ba74294a868e069e3780bfd0511a4e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "196be40230e7f1d68abb51ab7115361682ba74294a868e069e3780bfd0511a4e", kill_on_drop: false }`
[INFO] [stdout] 196be40230e7f1d68abb51ab7115361682ba74294a868e069e3780bfd0511a4e
